#include "chatwindow.h"
#include "loginwindow.h"
#include <QApplication>
#include <QObject>
#include "tcpclient.h"
#include "clientdatabasemanager.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    ClientDatabaseManager::instance();

    TcpClient tcpClient; // 在 main 中创建唯一实例

    //重构，让Login和Chat有tcpClient指针--------------
    LoginWindow login_win(&tcpClient); // 将指针传递给登录窗口
    ChatWindow chat_win(&tcpClient); // 也传递给聊天窗口
    // 使用 Lambda 表达式来处理 loginSuccess 信号
    QObject::connect(&login_win, &LoginWindow::loginSuccess,
                     [&](const QJsonObject& userInfo, const QJsonArray& friends) {
                         // 当登录成功时，这个 Lambda 会被执行
                         chat_win.setCurrentUserInfo(userInfo); // 设置当前用户信息
                         chat_win.setFriendsList(friends);      // 设置好友列表
                         chat_win.show();
                     });

    login_win.show();

    return a.exec();
}
